package br.senai.mb;

import java.io.IOException;
import java.io.Serializable;
import java.security.NoSuchAlgorithmException;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import br.senai.entidade.Sessao;
import br.senai.entidade.Usuario;
import br.senai.modelo.AutenticacaoDAO;
import br.senai.modelo.impl.AutenticacaoDAOImpl; 
import br.senai.util.Criptografia;

@ManagedBean
@RequestScoped
public class AutenticacaoMB extends ManagedBeanBase implements Serializable {
	
	private static final long serialVersionUID = 1L;

	private String login;
	private String senha;
	
	public String logar(){
		
		Criptografia cripto = new Criptografia();
		try {
			senha = cripto.encrypt(senha);
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		
		AutenticacaoDAO autenticacaoDAO = (AutenticacaoDAO) createPersistence(AutenticacaoDAOImpl.class);
		
		Usuario usuario = autenticacaoDAO.logar(login, senha);
		
		if (usuario != null){
			Sessao sessao = new Sessao();
			sessao.setUsuario(usuario);
			setSessionAttribute("sessaoKey", sessao);
			return "pages/principal.jsf?faces-redirect=true";
		}else{
			return "";
		}		
	}
	
	public void sair() throws IOException {
		getSession().invalidate();
		FacesContext.getCurrentInstance().getExternalContext().redirect("login.jsf");
	}
	
	public String getLogin() {
		return login;
	}
	public void setLogin(String login) {
		this.login = login;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
}
